using System;
using System.Text;
using System.Reflection;
using System.ServiceModel;
using System.Collections.Generic;
using System.Runtime.Serialization;
using TDS = Tridion.ContentManager.Interop.TDS;
using TDSDefines = Tridion.ContentManager.Interop.TDSDefines;



#pragma warning disable 649
namespace Tridion.Gateway
{
	[DataContract]
	public class ComponentPresentation:Facade
	{
        internal ComponentPresentation(TDS.ComponentPresentation ComponentPresentation, bool ShallowCopy)
            : base(typeof(TDS._ComponentPresentation), ComponentPresentation, ShallowCopy)
		{
		}

		[DataMember(Name="ID")]
		private Int32 id;
		public Int32 ID
		{
			 get { return id; }
		}


		[DataMember(Name="Component")]
		private Component component;
		public Component Component
		{
			 get { return component; }
		}


		[DataMember(Name="ComponentTemplate")]
		private ComponentTemplate componenttemplate;
		public ComponentTemplate ComponentTemplate
		{
			 get { return componenttemplate; }
		}


		[DataMember(Name="OrdinalPosition")]
		private Int32 ordinalposition;
		public Int32 OrdinalPosition
		{
			 get { return ordinalposition; }
		}


		[DataMember(Name="ComponentID")]
		private String componentid;
		public String ComponentID
		{
			 get { return componentid; }
		}


		[DataMember(Name="ComponentTemplateID")]
		private String componenttemplateid;
		public String ComponentTemplateID
		{
			 get { return componenttemplateid; }
		}


		[DataMember(Name="componentTitle")]
		private String componenttitle;
		public String componentTitle
		{
			 get { return componenttitle; }
		}


		[DataMember(Name="componentTemplateTitle")]
		private String componenttemplatetitle;
		public String componentTemplateTitle
		{
			 get { return componenttemplatetitle; }
		}


        //TODO:Fix
        //[DataMember(Name="TargetGroupConditions")]
        //private Collection targetgroupconditions;
        //public Collection TargetGroupConditions
        //{
        //     get { return targetgroupconditions; }
        //}


        protected override void Initialize(FieldInfo field, PropertyInfo property, Object value)
        {

        }

	}
}

/*
			System.String Content()
			Void AddTargetGroupCondition(Tridion.ContentManager.Interop.TDS.TargetGroup, Boolean)
			System.String Render(System.String)
			System.Object AddParameter(System.String, System.Object)
			Boolean ExistParameter(System.String)
			Boolean RemoveParameter(System.String)
			System.Object GetParameter(System.String)
*/
